package so.sao.shop.supplier.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>Version: supplier V1.2.0 </p>
 * <p>Title: CheckingAccountPayment</p>
 * <p>Description: 透云订单支付回掉数据，用于对账</p>
 *
 * @author: fangzhou
 * @Date: Created in 2017/11/22 10:13
 */
public class CheckingAccountPayment {

    /**
     * ID
     */
    private Long id;

    /**
     * 支付ID
     */
    private String payId;

    /**
     * 支付流水号
     */
    private String orderPaymentNum;

    /**
     * 交易状态(WAIT_BUYER_PAY    交易创建，等待买家付款;TRADE_CLOSED    未付款交易超时关闭，或支付完成后全额退款;TRADE_SUCCESS    交易支付成功;TRADE_FINISHED    交易结束，不可退款)
     */
    private String tradeStatus;

    /**
     * 本次交易支付的订单金额
     */
    private BigDecimal totalAmount;

    /**
     * 商家实收金额
     */
    private BigDecimal receiptAmount;

    /**
     * 用户在交易中支付的金额
     */
    private BigDecimal buyerPayAmount;

    /**
     * 退款金额
     */
    private BigDecimal refundFee;

    /**
     * 订单标题
     */
    private String subject;

    /**
     * 支付创建的时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date payTimeCreate;

    /**
     * 支付完成时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date payTimeComplate;

    /**
     * 退款创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date refundTimeCreate;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date updatedAt;

    /**
     * 对账记录id
     */
    private Long recordId;

    /**
     * 对账人id
     */
    private Long checkerId;

    /**
     * 交易类型
     */
    private Integer businessType;

    public Integer getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPayId() {
        return payId;
    }

    public void setPayId(String payId) {
        this.payId = payId;
    }

    public String getOrderPaymentNum() {
        return orderPaymentNum;
    }

    public void setOrderPaymentNum(String orderPaymentNum) {
        this.orderPaymentNum = orderPaymentNum;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getReceiptAmount() {
        return receiptAmount;
    }

    public void setReceiptAmount(BigDecimal receiptAmount) {
        this.receiptAmount = receiptAmount;
    }

    public BigDecimal getBuyerPayAmount() {
        return buyerPayAmount;
    }

    public void setBuyerPayAmount(BigDecimal buyerPayAmount) {
        this.buyerPayAmount = buyerPayAmount;
    }

    public BigDecimal getRefundFee() {
        return refundFee;
    }

    public void setRefundFee(BigDecimal refundFee) {
        this.refundFee = refundFee;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Date getPayTimeCreate() {
        return payTimeCreate;
    }

    public void setPayTimeCreate(Date payTimeCreate) {
        this.payTimeCreate = payTimeCreate;
    }

    public Date getPayTimeComplate() {
        return payTimeComplate;
    }

    public void setPayTimeComplate(Date payTimeComplate) {
        this.payTimeComplate = payTimeComplate;
    }

    public Date getRefundTimeCreate() {
        return refundTimeCreate;
    }

    public void setRefundTimeCreate(Date refundTimeCreate) {
        this.refundTimeCreate = refundTimeCreate;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Long getRecordId() {
        return recordId;
    }

    public void setRecordId(Long recordId) {
        this.recordId = recordId;
    }

    public Long getCheckerId() {
        return checkerId;
    }

    public void setCheckerId(Long checkerId) {
        this.checkerId = checkerId;
    }
}
